#pragma once

namespace Core {

class CoreSettingsPrivate;

class CoreSettings
{
public:
    static CoreSettings *instance();

    /**
      Sets window mode to Fullscreen and reads OS screen resolution.
      QApplication should be initialized before this function called.
      */
    void readSystemSettings();

    /**
      Directly sets window settings
      */
    void setSettings(int width, int height, bool isFullscreen);

    /**
      Is game window fullscreen?
      */
    bool isFullscreen() const;

    /**
      Returns game window width (or screen resolution in fullscreen mode).
      */
    int windowWidth() const;

    /**
      Returns game window height (or screen resolution in fullscreen mode).
      */
    int windowHeight() const;

private:
    CoreSettings();
    ~CoreSettings();

    int _width;
    int _height;
    bool _isFullscreen;
};

} // Core
